package com.imooc.imoocbilibili.controller;

import java.util.Arrays;

import com.imooc.imoocbilibili.dto.VersionConfigDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.imooc.imoocbilibili.entity.VersionConfig;
import com.imooc.imoocbilibili.service.VersionConfigService;
import com.imooc.imoocbilibili.utils.R;


/**
 * 版本管理表
 *
 * @author 江黎
 * @since 2022-04-12 19:59:10
 */
@RestController
@RequestMapping("/oms/version")
@RequiredArgsConstructor
public class VersionConfigController {

    private final VersionConfigService versionConfigService;

    /**
     * 分页查询版本管理表
     */
    @GetMapping("/list")
    public R list(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) {
        return R.ok(versionConfigService.queryPage(pageNo, pageSize));
    }

    /**
     * 发布新包
     */
    @PostMapping("/save")
    public R saveVersion(@Validated @RequestBody VersionConfigDTO versionConfigDTO) {
        versionConfigService.saveVersion(versionConfigDTO);
        return R.ok();
    }

    /**
     * 查询最新版本号
     */
    @GetMapping("/latest")
    public R latest(@RequestParam("type") Integer type) {
        return R.ok(versionConfigService.latest(type));
    }


    /**
     * 根据主键查询版本管理表
     */
    @GetMapping("/info/{versionId}")
    public R info(@PathVariable("versionId") Integer versionId) {
        VersionConfig versionConfig =versionConfigService.getById(versionId);
        return R.ok(versionConfig);
    }

    /**
     * 修改版本管理表
     */
    @PutMapping("/update")
    public R update(@RequestBody VersionConfig versionConfig) {
            versionConfigService.updateById(versionConfig);
        return R.ok();
    }

    /**
     * 删除版本管理表
     */
    @DeleteMapping("/delete")
    public R delete(@RequestBody Integer[] versionIds) {
            versionConfigService.removeByIds(Arrays.asList(versionIds));
        return R.ok();
    }

}
